/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package ClassesUnicas;

import java.util.ArrayList;

/**
 * Jogo
 *
 * Versao 1.0
 *
 * Data Criação 02/08/2014
 *
 * @author Igor
 */
public class Jogo {
    //Atributos
    private long idJogo;
    private long idFase;
    private long idSubFase;
    private String dataInicio;
    private String codigoBarras;
    private boolean baseline;
    private int tempoApresentacaoImagens;
    private int tempoTransicaoImagens;
    private int repetirApresentacaoImagens;
    private boolean apresentaMensagemAcertoErro;
    private String modoJogo;
    private long tempoInicioJogo;
    private int percsAvancarSubFases;
    private boolean msgAcertoErro;
    private String nomeJogador;
    
    //Construtores
    public Jogo(){
        this.idJogo = 0;
        this.idFase = 0;
        this.idSubFase = 0;
        this.dataInicio = "";
        this.codigoBarras = "";
        this.baseline = false;
    }

    //Getters e Setters
    /**
     * @return the idJogo
     */
    public long getIdJogo() {
        return idJogo;
    }

    /**
     * @param idJogo the idJogo to set
     */
    public void setIdJogo(long idJogo) {
        this.idJogo = idJogo;
    }

    /**
     * @return the idFase
     */
    public long getIdFase() {
        return idFase;
    }

    /**
     * @param idFase the idFase to set
     */
    public void setIdFase(long idFase) {
        this.idFase = idFase;
    }

    /**
     * @return the idSubFase
     */
    public long getIdSubFase() {
        return idSubFase;
    }

    /**
     * @param idSubFase the idSubFase to set
     */
    public void setIdSubFase(long idSubFase) {
        this.idSubFase = idSubFase;
    }

    /**
     * @return the dataInicio
     */
    public String getDataInicio() {
        return dataInicio;
    }

    /**
     * @param dataInicio the dataInicio to set
     */
    public void setDataInicio(String dataInicio) {
        this.dataInicio = dataInicio;
    }

    /**
     * @return the codigoBarras
     */
    public String getCodigoBarras() {
        return codigoBarras;
    }

    /**
     * @param codigoBarras the codigoBarras to set
     */
    public void setCodigoBarras(String codigoBarras) {
        this.codigoBarras = codigoBarras;
    }

    /**
     * @return the baseline
     */
    public boolean isBaseline() {
        return baseline;
    }

    /**
     * @param baseline the baseline to set
     */
    public void setBaseline(boolean baseline) {
        this.baseline = baseline;
    }

    /**
     * @return the tempoApresentacaoImagens
     */
    public int getTempoApresentacaoImagens() {
        return tempoApresentacaoImagens;
    }

    /**
     * @param tempoApresentacaoImagens the tempoApresentacaoImagens to set
     */
    public void setTempoApresentacaoImagens(int tempoApresentacaoImagens) {
        this.tempoApresentacaoImagens = tempoApresentacaoImagens;
    }

    /**
     * @return the tempoTransicaoImagens
     */
    public int getTempoTransicaoImagens() {
        return tempoTransicaoImagens;
    }

    /**
     * @param tempoTransicaoImagens the tempoTransicaoImagens to set
     */
    public void setTempoTransicaoImagens(int tempoTransicaoImagens) {
        this.tempoTransicaoImagens = tempoTransicaoImagens;
    }

    /**
     * @return the repetirApresentacaoImagens
     */
    public int getRepetirApresentacaoImagens() {
        return repetirApresentacaoImagens;
    }

    /**
     * @param repetirApresentacaoImagens the repetirApresentacaoImagens to set
     */
    public void setRepetirApresentacaoImagens(int repetirApresentacaoImagens) {
        this.repetirApresentacaoImagens = repetirApresentacaoImagens;
    }

    /**
     * @return the apresentaMensagemAcertoErro
     */
    public boolean isApresentaMensagemAcertoErro() {
        return apresentaMensagemAcertoErro;
    }

    /**
     * @param apresentaMensagemAcertoErro the apresentaMensagemAcertoErro to set
     */
    public void setApresentaMensagemAcertoErro(boolean apresentaMensagemAcertoErro) {
        this.apresentaMensagemAcertoErro = apresentaMensagemAcertoErro;
    }

    /**
     * @return the modoJogo
     */
    public String getModoJogo() {
        return modoJogo;
    }

    /**
     * @param modoJogo the modoJogo to set
     */
    public void setModoJogo(String modoJogo) {
        this.modoJogo = modoJogo;
    }

    /**
     * @return the tempoInicioJogo
     */
    public long getTempoInicioJogo() {
        return tempoInicioJogo;
    }

    /**
     * @param tempoInicioJogo the tempoInicioJogo to set
     */
    public void setTempoInicioJogo(long tempoInicioJogo) {
        this.tempoInicioJogo = tempoInicioJogo;
    }

    /**
     * @return the percsAvancarSubFases
     */
    public int getPercsAvancarSubFases() {
        return percsAvancarSubFases;
    }

    /**
     * @param percsAvancarSubFases the percsAvancarSubFases to set
     */
    public void setPercsAvancarSubFases(int percsAvancarSubFases) {
        this.percsAvancarSubFases = percsAvancarSubFases;
    }

    /**
     * @param msgAcertoErro the msgAcertoErro to set
     */
    public void setMsgAcertoErro(boolean msgAcertoErro) {
        this.msgAcertoErro = msgAcertoErro;
    }

    /**
     * @return the msgAcertoErro
     */
    public boolean isMsgAcertoErro() {
        return msgAcertoErro;
    }

    /**
     * @return the nomeJogador
     */
    public String getNomeJogador() {
        return nomeJogador;
    }

    /**
     * @param nomeJogador the nomeJogador to set
     */
    public void setNomeJogador(String nomeJogador) {
        this.nomeJogador = nomeJogador;
    }
    
    //Outros metodos
    @Override
    public String toString() {
        String detalhes = "";
        String baseline = "NÃO";
        String msgErroAcerto = "NÃO";

        if(isBaseline()){
            baseline = "SIM";
        }
        if(isMsgAcertoErro()){
            msgErroAcerto = "SIM";
        }

        detalhes = 
                "Código: "+idJogo+";\n"+
                "Modo de Jogo: "+modoJogo+";\n"+
                "Jogador: "+nomeJogador+";\n"+
                "Baseline: "+baseline+";\n"+
                "Fase/SubFase: "+idFase+"."+idSubFase+";\n"+
                "Data: "+dataInicio+";\n"+
                "Tempo de apresentação da imagem (em segundos): "+tempoApresentacaoImagens+";\n"+
                "Tempo transição de imagens (em segundos): "+tempoTransicaoImagens+";\n"+
                "Repetir a apresentação de uma imagem: "+repetirApresentacaoImagens+";\n"+
                "Apresentar mensagens de Acerto/Erro: "+msgErroAcerto+";\n"+
                "Porcentagem de acertos para avançar para próximas sub-fases: "+percsAvancarSubFases+";\n";
        return detalhes;
    }
}
